package databeans;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
import beans.*;
import java.sql.SQLException;
import javax.sql.rowset.CachedRowSet;
import com.sun.rowset.CachedRowSetImpl;
import utils.CargarConfiguraciones;
/**
 *
 * 
 * @author 3m3r50n
 */
public class VotoDataBean {
    private CachedRowSet rowSet;
    private CargarConfiguraciones cc;
        
    //Construir el objeto
    public VotoDataBean() throws Exception
    {
        cc = new CargarConfiguraciones();
        Class.forName(cc.getValor("driver"));
        rowSet = new CachedRowSetImpl();
        rowSet.setUrl(cc.getValor("urlbase"));
        rowSet.setUsername(cc.getValor("usuario"));
        rowSet.setPassword(cc.getValor("clave"));
    }
    public void setVoto(VotoBean voto)throws SQLException{
       String sql = "INSERT INTO detalleencuesta (" +
                "idencuesta, " +
                "carnet, " +
                "respuesta )"+
	"VALUES (" +
                "'" + voto.getIdEncuesta()+ "',"+
                "'" + voto.getCarnet().trim()+ "', " +
                "'" + voto.getRespuesta() + "')";
       System.out.println(sql);
       rowSet.setCommand(sql);
      
        rowSet.execute();
    }

    public boolean puedeVotar(String encuesta,String carnet) throws SQLException{
        String sql = "SELECT count(de.carnet) votos, e.maxrespuestas " +
                "from encuesta e join detalleencuesta de using(idencuesta) " +
                "where e.idencuesta = '"+encuesta+"' and de.carnet = '"+carnet+"'";
        rowSet.setCommand(sql);
        rowSet.execute();
        rowSet.beforeFirst();
        rowSet.next();
        return  (rowSet.getInt(1)<rowSet.getInt(2));
    }

    public int conteoOpciones(String id) throws SQLException{
        String sql = "SELECT count(op.correlativo) opciones from opcionesencuesta op join encuesta e using (idencuesta) " +
              "where e.idencuesta = '" + id + "'";
        System.out.println(sql);
        rowSet.setCommand(sql);
        rowSet.execute();
        rowSet.beforeFirst();
        rowSet.next();
        return rowSet.getInt(1);
    }
}
